package ar.edu.utn.frba.dds.tp.code.adapter;

import ar.edu.utn.frba.dds.tp.code.Asientos.AsientoDeVuelo;
import ar.edu.utn.frba.dds.tp.code.Asientos.ClaseAsiento;
import ar.edu.utn.frba.dds.tp.code.Asientos.EstadoAsiento;
import ar.edu.utn.frba.dds.tp.code.Asientos.UbicacionAsiento;
import ar.edu.utn.frba.dds.tp.code.vuelos.Vuelo;
import ar.edu.utn.frba.dds.tp.homes.AsientosHome;
import ar.edu.utn.frba.dds.tp.homes.VuelosHome;

public class AbstractConversor {

	protected EstadoAsiento generarEstadoDeAsiento(String estado) {
		EstadoAsiento estadoAsiento = null;
		
		switch(estado.charAt(0)){
				case 'C':
					 estadoAsiento = EstadoAsiento.COMPRADO;
					 break;
				case 'R':
					 estadoAsiento = EstadoAsiento.RESERVADO;
					 break;
				case 'D':
					 estadoAsiento = EstadoAsiento.DISPONIBLE;
					 break;
		}
		return estadoAsiento;
	}

	protected UbicacionAsiento generarUbicacionDeAsiento(String ubicacion) {
		UbicacionAsiento ubicacionAsiento = null;
		
		switch (ubicacion.charAt(0)) {
					case 'P':
						ubicacionAsiento = UbicacionAsiento.PASILLO;
						break;
					case 'V':
						ubicacionAsiento = UbicacionAsiento.VENTANA;
						break;
					case 'C':
						ubicacionAsiento = UbicacionAsiento.CENTRO;
						break;
		}
		return ubicacionAsiento;
	}

	protected ClaseAsiento generarClaseDeAsiento(String clase) {
		ClaseAsiento claseAsiento = null;
		
		switch(clase.charAt(0)){
				case 'P':
					 claseAsiento = ClaseAsiento.PRIMERA;
					 break;
				case 'E':
					 claseAsiento = ClaseAsiento.EJECUTIVA;
					 break;
				case 'T':
					 claseAsiento =ClaseAsiento.TURISTA;
					 break;
		}
		return claseAsiento;
	}


	protected void registrar(Vuelo vuelo) {
		VuelosHome.getInstance().update(vuelo);
	}

	protected void registrar(AsientoDeVuelo asiento) {
		AsientosHome.getInstance().create(asiento);
	}

}
